package controlador;

import vista.VistaInscribirEstudiante ;
import controlador.ControladorMenu;
import modelo.Estudiante;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.util.Vector;

import javax.swing.*;

import modelo.Seccion;

public class ControladorInscribirEstudiante extends WindowAdapter implements ActionListener {
	private VistaInscribirEstudiante vista;
	private ControladorMenu n= new ControladorMenu();
	private Seccion seccion = new Seccion();
	private Vector<Estudiante> VectorEstudiante= new Vector<Estudiante>();
	public ControladorInscribirEstudiante(VistaInscribirEstudiante vista) {
		this.vista = vista;
		
	}
	
	public void actionPerformed(ActionEvent e){
		
		if(e.getActionCommand()=="Ingresar")
			IngresarEstudiante();
	    else if(e.getActionCommand()=="Limpiar")
			vista.limpiar();
	    else if(e.getActionCommand()=="Retirar")
			try {
				RetirarEstudiante();
			} catch (IOException e2)
			{
				e2.printStackTrace();
			}
		else if(e.getActionCommand()=="Cancelar")
			vista.dispose();
		else if(e.getActionCommand()=="Buscar")
			try {
				BuscarEstudiante();
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
		
	    public void RetirarEstudiante() throws IOException{
	    	String ci = vista.getTxtCedula();
	    	seccion.RetirarEstudiante(ci) ;
	    	
	    }

	
	
	
    
	public void windowClosing(WindowEvent e){
		vista.dispose();
	}
	
	

        public boolean validarDatos(){
            boolean validacion = false;
            if ((vista.getTxtNombre().equals("")) || (vista.getTxtCedula().equals("")) || (vista.getTxtApellido1().equals("")) )
                validacion=false;
            else
                validacion=true;
       
            return validacion;
    }
        
     
        public  void BuscarEstudiante() throws IOException{
        	Estudiante es=new Estudiante();
    		String ci = vista.getTxtCedula();
    		int si = seccion.Buscar(ci);
    		if (si == -1)
    			JOptionPane.showMessageDialog(new JFrame(),"El estudiante no esta inscrito en la seccion","Notificación",
    					JOptionPane.INFORMATION_MESSAGE);
    		else{
    			es=seccion.GetEstudiante(vista.getTxtCedula());
				vista.setTxtNombre(es.getNombre());
    			vista.setTxtApellido1(es.getApellido());
    		}
    	};
    		
        
    
	public void IngresarEstudiante(){
		boolean vericed = true, verinom = true, veriape = true, comprobar=true;
		String ci, nombre, apellido; int si;
		Estudiante es = new Estudiante(vista.getTxtCedula(),  vista.getTxtNombre(), vista.getTxtApellido1());
		ci = vista.getTxtCedula();
		vericed=seccion.ValidarNros(ci);
		nombre = vista.getTxtNombre();
		verinom=seccion.ValidarLetras(nombre);
		apellido = vista.getTxtApellido1();
		veriape=seccion.ValidarLetras(apellido);
		
                if (validarDatos() == false){
			JOptionPane.showMessageDialog(new JFrame(),"Los Campos con * no pueden estar vacios","Error",
					JOptionPane.INFORMATION_MESSAGE);
					comprobar=false;
                }
                
               	if(vericed=seccion.ValidarNros(ci)==false){
       				 JOptionPane.showMessageDialog(new JFrame(),"Solo debe escribir numeros en el campo cedula como caracteres validos","Error",
       							JOptionPane.INFORMATION_MESSAGE);
       				comprobar=false;
               	}
       			 si = seccion.Buscar(ci);
               	 if (si != -1){
       				 JOptionPane.showMessageDialog(new JFrame(),"El estudiante ya esta inscrito","Error",
       							JOptionPane.INFORMATION_MESSAGE);
       			comprobar=false;
                } 
               	
                if(verinom=seccion.ValidarLetras(nombre)==false){
   				 JOptionPane.showMessageDialog(new JFrame(),"Solo debe escribir letras en el campo nombre como caracteres validos","Error",
   							JOptionPane.INFORMATION_MESSAGE);
   				comprobar=false;
                }
                
                if(veriape=seccion.ValidarLetras(apellido)==false){
   				 JOptionPane.showMessageDialog(new JFrame(),"Solo debe escribir letras en el campo apellido como caracteres validos","Error",
   							JOptionPane.INFORMATION_MESSAGE);
   				comprobar=false;
                }
                    
		 if(comprobar==true) {
                	es.setCedula(vista.getTxtCedula());
                    es.setNombre(vista.getTxtNombre());
                    es.setApellido(vista.getTxtApellido1());
                    try {
    					seccion.InscribirEstudiante(es.getCedula(), es.getNombre(), es.getApellido());
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
                        vista.limpiar();
                    JOptionPane.showMessageDialog(new JFrame(),"Registro agregado exitosamente","Ingresos",JOptionPane.INFORMATION_MESSAGE);
                    }

}
	
   
}
